"""
1.集成配置类
2.集成flask_sqlalchemy
3.集成redis
4.集成csrf
5.设置session的保存方式
6.集成flask_script命令行启动
7.集成migrate数据库迁移
8.抽取配置类到config中
9.抽取关于app的业务逻辑代码
10.使用面向对象的方式配置不同需求的类
11.使用工厂模式创建不同的app
12.配置日志文件
13.抽取视图函数到蓝图模块
14.循环导入问题
15.数据库迁移和测试数据添加
16.首页渲染
17.解决图标favicon.ico的BUG
18.注册验证码链接UUid

"""




from flask import Flask,session
# from flask_sqlalchemy import SQLAlchemy
# from redis import StrictRedis
# from flask_wtf import CSRFProtect
# from flask_session import Session
from flask_script import Manager
from flask_migrate import Migrate,MigrateCommand
# from Config import Config
from info import create_app,db
import logging
from flask import current_app
from info.models import *



# 11.通过传入不同配置创造出不同配置下的app实例， 工厂方法  python设计模式：工厂模式
app = create_app("develop")

# 6.集成flask_script
manager = Manager(app)

# 7.集成flask_migrate
# 关联app
Migrate(app,db)
# 添加db 命令到manager
manager.add_command("db",MigrateCommand)


if __name__ == "__main__":
    print(app.url_map)
    manager.run()